/* flatpickr v4.6.13,, @license MIT */ ! function(e, n) {
	"object" == typeof exports && "undefined" != typeof module ? module.exports = n() : "function" == typeof define && define.amd ? define(n) : (e = "undefined" != typeof globalThis ? globalThis : e || self).flatpickr = n()
}(this, (function() {
	"use strict";
	var e = function() {
		return (e = Object.assign || function(e) {
			for (var n, t = 1, a = arguments.length; t < a; t++)
				for (var i in n = arguments[t]) Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i]);
			return e
		}).apply(this, arguments)
	};

	function n() {
		for (var e = 0, n = 0, t = arguments.length; n < t; n++) e += arguments[n].length;
		var a = Array(e),
			i = 0;
		for (n = 0; n < t; n++)
			for (var o = arguments[n], r = 0, l = o.length; r < l; r++, i++) a[i] = o[r];
		return a
	}
	var t = ["onChange", "onClose", "onDayCreate", "onDestroy", "onKeyDown", "onMonthChange", "onOpen", "onParseConfig", "onReady", "onValueUpdate", "onYearChange", "onPreCalendarPosition"],
		a = {
			_disable: [],
			allowInput: !1,
			allowInvalidPreload: !1,
			altFormat: "F j, Y",
			altInput: !1,
			altInputClass: "form-control input",
			animate: "object" == typeof window && -1 === window.navigator.userAgent.indexOf("MSIE"),
			ariaDateFormat: "F j, Y",
			autoFillDefaultTime: !0,
			clickOpens: !0,
			closeOnSelect: !0,
			conjunction: ", ",
			dateFormat: "Y-m-d",
			defaultHour: 12,
			defaultMinute: 0,
			defaultSeconds: 0,
			disable: [],
			disableMobile: !1,
			enableSeconds: !1,
			enableTime: !1,
			errorHandler: function(e) {
				return "undefined" != typeof console && console.warn(e)
			},
			getWeek: function(e) {
				var n = new Date(e.getTime());
				n.setHours(0, 0, 0, 0), n.setDate(n.getDate() + 3 - (n.getDay() + 6) % 7);
				var t = new Date(n.getFullYear(), 0, 4);
				return 1 + Math.round(((n.getTime() - t.getTime()) / 864e5 - 3 + (t.getDay() + 6) % 7) / 7)
			},
			hourIncrement: 1,
			ignoredFocusElements: [],
			inline: !1,
			locale: "default",
			minuteIncrement: 5,
			mode: "single",
			monthSelectorType: "dropdown",
			nextArrow: "<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M13.207 8.472l-7.854 7.854-0.707-0.707 7.146-7.146-7.146-7.148 0.707-0.707 7.854 7.854z' /></svg>",
			noCalendar: !1,
			now: new Date,
			onChange: [],
			onClose: [],
			onDayCreate: [],
			onDestroy: [],
			onKeyDown: [],
			onMonthChange: [],
			onOpen: [],
			onParseConfig: [],
			onReady: [],
			onValueUpdate: [],
			onYearChange: [],
			onPreCalendarPosition: [],
			plugins: [],
			position: "auto",
			positionElement: void 0,
			prevArrow: "<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M5.207 8.471l7.146 7.147-0.707 0.707-7.853-7.854 7.854-7.853 0.707 0.707-7.147 7.146z' /></svg>",
			shorthandCurrentMonth: !1,
			showMonths: 1,
			static: !1,
			time_24hr: !1,
			weekNumbers: !1,
			wrap: !1
		}, i = {
			weekdays: {
				shorthand: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"],
				longhand: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
			},
			months: {
				shorthand: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
				//longhand: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
				longhand: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
			},
			daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
			firstDayOfWeek: 0,
			ordinal: function(e) {
				var n = e % 100;
				if (n > 3 && n < 21) return "th";
				switch (n % 10) {
					case 1:
						return "st";
					case 2:
						return "nd";
					case 3:
						return "rd";
					default:
						return "th"
				}
			},
			rangeSeparator: " to ",
			weekAbbreviation: "Wk",
			scrollTitle: "Scroll to increment",
			toggleTitle: "Click to toggle",
			amPM: ["AM", "PM"],
			yearAriaLabel: "Year",
			monthAriaLabel: "Month",
			hourAriaLabel: "Hour",
			minuteAriaLabel: "Minute",
			time_24hr: !1
		}, o = function(e, n) {
			return void 0 === n && (n = 2), ("000" + e).slice(-1 * n)
		}, r = function(e) {
			return !0 === e ? 1 : 0
		};

	function l(e, n) {
		var t;
		return function() {
			var a = this,
				i = arguments;
			clearTimeout(t), t = setTimeout((function() {
				return e.apply(a, i)
			}), n)
		}
	}
	var c = function(e) {
		return e instanceof Array ? e : [e]
	};

	function s(e, n, t) {
		if (!0 === t) return e.classList.add(n);
		e.classList.remove(n)
	}

	function d(e, n, t) {
		var a = window.document.createElement(e);
		return n = n || "", t = t || "", a.className = n, void 0 !== t && (a.textContent = t), a
	}

	function u(e) {
		for (; e.firstChild;) e.removeChild(e.firstChild)
	}

	function f(e, n) {
		return n(e) ? e : e.parentNode ? f(e.parentNode, n) : void 0
	}

	function m(e, n) {
		var t = d("div", "numInputWrapper"),
			a = d("input", "numInput " + e),
			i = d("span", "arrowUp"),
			o = d("span", "arrowDown");
		if (-1 === navigator.userAgent.indexOf("MSIE 9.0") ? a.type = "number" : (a.type = "text", a.pattern = "\\d*"), void 0 !== n)
			for (var r in n) a.setAttribute(r, n[r]);
		return t.appendChild(a), t.appendChild(i), t.appendChild(o), t
	}

	function g(e) {
		try {
			return "function" == typeof e.composedPath ? e.composedPath()[0] : e.target
		} catch (n) {
			return e.target
		}
	}
	var p = function() {}, h = function(e, n, t) {
			return t.months[n ? "shorthand" : "longhand"][e]
		}, v = {
			D: p,
			F: function(e, n, t) {
				e.setMonth(t.months.longhand.indexOf(n))
			},
			G: function(e, n) {
				e.setHours((e.getHours() >= 12 ? 12 : 0) + parseFloat(n))
			},
			H: function(e, n) {
				e.setHours(parseFloat(n))
			},
			J: function(e, n) {
				e.setDate(parseFloat(n))
			},
			K: function(e, n, t) {
				e.setHours(e.getHours() % 12 + 12 * r(new RegExp(t.amPM[1], "i").test(n)))
			},
			M: function(e, n, t) {
				e.setMonth(t.months.shorthand.indexOf(n))
			},
			S: function(e, n) {
				e.setSeconds(parseFloat(n))
			},
			U: function(e, n) {
				return new Date(1e3 * parseFloat(n))
			},
			W: function(e, n, t) {
				var a = parseInt(n),
					i = new Date(e.getFullYear(), 0, 2 + 7 * (a - 1), 0, 0, 0, 0);
				return i.setDate(i.getDate() - i.getDay() + t.firstDayOfWeek), i
			},
			Y: function(e, n) {
				e.setFullYear(parseFloat(n))
			},
			Z: function(e, n) {
				return new Date(n)
			},
			d: function(e, n) {
				e.setDate(parseFloat(n))
			},
			h: function(e, n) {
				e.setHours((e.getHours() >= 12 ? 12 : 0) + parseFloat(n))
			},
			i: function(e, n) {
				e.setMinutes(parseFloat(n))
			},
			j: function(e, n) {
				e.setDate(parseFloat(n))
			},
			l: p,
			m: function(e, n) {
				e.setMonth(parseFloat(n) - 1)
			},
			n: function(e, n) {
				e.setMonth(parseFloat(n) - 1)
			},
			s: function(e, n) {
				e.setSeconds(parseFloat(n))
			},
			u: function(e, n) {
				return new Date(parseFloat(n))
			},
			w: p,
			y: function(e, n) {
				e.setFullYear(2e3 + parseFloat(n))
			}
		}, D = {
			D: "",
			F: "",
			G: "(\\d\\d|\\d)",
			H: "(\\d\\d|\\d)",
			J: "(\\d\\d|\\d)\\w+",
			K: "",
			M: "",
			S: "(\\d\\d|\\d)",
			U: "(.+)",
			W: "(\\d\\d|\\d)",
			Y: "(\\d{4})",
			Z: "(.+)",
			d: "(\\d\\d|\\d)",
			h: "(\\d\\d|\\d)",
			i: "(\\d\\d|\\d)",
			j: "(\\d\\d|\\d)",
			l: "",
			m: "(\\d\\d|\\d)",
			n: "(\\d\\d|\\d)",
			s: "(\\d\\d|\\d)",
			u: "(.+)",
			w: "(\\d\\d|\\d)",
			y: "(\\d{2})"
		}, w = {
			Z: function(e) {
				return e.toISOString()
			},
			D: function(e, n, t) {
				return n.weekdays.shorthand[w.w(e, n, t)]
			},
			F: function(e, n, t) {
				return h(w.n(e, n, t) - 1, !1, n)
			},
			G: function(e, n, t) {
				return o(w.h(e, n, t))
			},
			H: function(e) {
				return o(e.getHours())
			},
			J: function(e, n) {
				return void 0 !== n.ordinal ? e.getDate() + n.ordinal(e.getDate()) : e.getDate()
			},
			K: function(e, n) {
				return n.amPM[r(e.getHours() > 11)]
			},
			M: function(e, n) {
				return h(e.getMonth(), !0, n)
			},
			S: function(e) {
				return o(e.getSeconds())
			},
			U: function(e) {
				return e.getTime() / 1e3
			},
			W: function(e, n, t) {
				return t.getWeek(e)
			},
			Y: function(e) {
				return o(e.getFullYear(), 4)
			},
			d: function(e) {
				return o(e.getDate())
			},
			h: function(e) {
				return e.getHours() % 12 ? e.getHours() % 12 : 12
			},
			i: function(e) {
				return o(e.getMinutes())
			},
			j: function(e) {
				return e.getDate()
			},
			l: function(e, n) {
				return n.weekdays.longhand[e.getDay()]
			},
			m: function(e) {
				return o(e.getMonth() + 1)
			},
			n: function(e) {
				return e.getMonth() + 1
			},
			s: function(e) {
				return e.getSeconds()
			},
			u: function(e) {
				return e.getTime()
			},
			w: function(e) {
				return e.getDay()
			},
			y: function(e) {
				return String(e.getFullYear()).substring(2)
			}
		}, b = function(e) {
			var n = e.config,
				t = void 0 === n ? a : n,
				o = e.l10n,
				r = void 0 === o ? i : o,
				l = e.isMobile,
				c = void 0 !== l && l;
			return function(e, n, a) {
				var i = a || r;
				return void 0 === t.formatDate || c ? n.split("").map((function(n, a, o) {
					return w[n] && "\\" !== o[a - 1] ? w[n](e, i, t) : "\\" !== n ? n : ""
				})).join("") : t.formatDate(e, n, i)
			}
		}, C = function(e) {
			var n = e.config,
				t = void 0 === n ? a : n,
				o = e.l10n,
				r = void 0 === o ? i : o;
			return function(e, n, i, o) {
				if (0 === e || e) {
					var l, c = o || r,
						s = e;
					if (e instanceof Date) l = new Date(e.getTime());
					else if ("string" != typeof e && void 0 !== e.toFixed) l = new Date(e);
					else if ("string" == typeof e) {
						var d = n || (t || a).dateFormat,
							u = String(e).trim();
						if ("today" === u) l = new Date, i = !0;
						else if (t && t.parseDate) l = t.parseDate(e, d);
						else if (/Z$/.test(u) || /GMT$/.test(u)) l = new Date(e);
						else {
							for (var f = void 0, m = [], g = 0, p = 0, h = ""; g < d.length; g++) {
								var w = d[g],
									b = "\\" === w,
									C = "\\" === d[g - 1] || b;
								if (D[w] && !C) {
									h += D[w];
									var M = new RegExp(h).exec(e);
									M && (f = !0) && m["Y" !== w ? "push" : "unshift"]({
										fn: v[w],
										val: M[++p]
									})
								} else b || (h += ".")
							}
							l = t && t.noCalendar ? new Date((new Date).setHours(0, 0, 0, 0)) : new Date((new Date).getFullYear(), 0, 1, 0, 0, 0, 0), m.forEach((function(e) {
								var n = e.fn,
									t = e.val;
								return l = n(l, t, c) || l
							})), l = f ? l : void 0
						}
					}
					if (l instanceof Date && !isNaN(l.getTime())) return !0 === i && l.setHours(0, 0, 0, 0), l;
					t.errorHandler(new Error("Invalid date provided: " + s))
				}
			}
		};

	function M(e, n, t) {
		return void 0 === t && (t = !0), !1 !== t ? new Date(e.getTime()).setHours(0, 0, 0, 0) - new Date(n.getTime()).setHours(0, 0, 0, 0) : e.getTime() - n.getTime()
	}
	var y = function(e, n, t) {
		return 3600 * e + 60 * n + t
	}, x = 864e5;

	function E(e) {
		var n = e.defaultHour,
			t = e.defaultMinute,
			a = e.defaultSeconds;
		if (void 0 !== e.minDate) {
			var i = e.minDate.getHours(),
				o = e.minDate.getMinutes(),
				r = e.minDate.getSeconds();
			n < i && (n = i), n === i && t < o && (t = o), n === i && t === o && a < r && (a = e.minDate.getSeconds())
		}
		if (void 0 !== e.maxDate) {
			var l = e.maxDate.getHours(),
				c = e.maxDate.getMinutes();
			(n = Math.min(n, l)) === l && (t = Math.min(c, t)), n === l && t === c && (a = e.maxDate.getSeconds())
		}
		return {
			hours: n,
			minutes: t,
			seconds: a
		}
	}
	"function" != typeof Object.assign && (Object.assign = function(e) {
		for (var n = [], t = 1; t < arguments.length; t++) n[t - 1] = arguments[t];
		if (!e) throw TypeError("Cannot convert undefined or null to object");
		for (var a = function(n) {
			n && Object.keys(n).forEach((function(t) {
				return e[t] = n[t]
			}))
		}, i = 0, o = n; i < o.length; i++) {
			var r = o[i];
			a(r)
		}
		return e
	});

	function k(p, v) {
		var w = {
			config: e(e({}, a), I.defaultConfig),
			l10n: i
		};

		function k() {
			var e;
			return (null === (e = w.calendarContainer) || void 0 === e ? void 0 : e.getRootNode()).activeElement || document.activeElement
		}

		function T(e) {
			return e.bind(w)
		}

		function S() {
			var e = w.config;
			!1 === e.weekNumbers && 1 === e.showMonths || !0 !== e.noCalendar && window.requestAnimationFrame((function() {
				if (void 0 !== w.calendarContainer && (w.calendarContainer.style.visibility = "hidden", w.calendarContainer.style.display = "block"), void 0 !== w.daysContainer) {
					var n = (w.days.offsetWidth + 1) * e.showMonths;
					w.daysContainer.style.width = n + "px", w.calendarContainer.style.width = n + (void 0 !== w.weekWrapper ? w.weekWrapper.offsetWidth : 0) + "px", w.calendarContainer.style.removeProperty("visibility"), w.calendarContainer.style.removeProperty("display")
				}
			}))
		}

		function _(e) {
			if (0 === w.selectedDates.length) {
				var n = void 0 === w.config.minDate || M(new Date, w.config.minDate) >= 0 ? new Date : new Date(w.config.minDate.getTime()),
					t = E(w.config);
				n.setHours(t.hours, t.minutes, t.seconds, n.getMilliseconds()), w.selectedDates = [n], w.latestSelectedDateObj = n
			}
			void 0 !== e && "blur" !== e.type && function(e) {
				e.preventDefault();
				var n = "keydown" === e.type,
					t = g(e),
					a = t;
				void 0 !== w.amPM && t === w.amPM && (w.amPM.textContent = w.l10n.amPM[r(w.amPM.textContent === w.l10n.amPM[0])]);
				var i = parseFloat(a.getAttribute("min")),
					l = parseFloat(a.getAttribute("max")),
					c = parseFloat(a.getAttribute("step")),
					s = parseInt(a.value, 10),
					d = e.delta || (n ? 38 === e.which ? 1 : -1 : 0),
					u = s + c * d;
				if (void 0 !== a.value && 2 === a.value.length) {
					var f = a === w.hourElement,
						m = a === w.minuteElement;
					u < i ? (u = l + u + r(!f) + (r(f) && r(!w.amPM)), m && L(void 0, -1, w.hourElement)) : u > l && (u = a === w.hourElement ? u - l - r(!w.amPM) : i, m && L(void 0, 1, w.hourElement)), w.amPM && f && (1 === c ? u + s === 23 : Math.abs(u - s) > c) && (w.amPM.textContent = w.l10n.amPM[r(w.amPM.textContent === w.l10n.amPM[0])]), a.value = o(u)
				}
			}(e);
			var a = w._input.value;
			O(), ye(), w._input.value !== a && w._debouncedChange()
		}

		function O() {
			if (void 0 !== w.hourElement && void 0 !== w.minuteElement) {
				var e, n, t = (parseInt(w.hourElement.value.slice(-2), 10) || 0) % 24,
					a = (parseInt(w.minuteElement.value, 10) || 0) % 60,
					i = void 0 !== w.secondElement ? (parseInt(w.secondElement.value, 10) || 0) % 60 : 0;
				void 0 !== w.amPM && (e = t, n = w.amPM.textContent, t = e % 12 + 12 * r(n === w.l10n.amPM[1]));
				var o = void 0 !== w.config.minTime || w.config.minDate && w.minDateHasTime && w.latestSelectedDateObj && 0 === M(w.latestSelectedDateObj, w.config.minDate, !0),
					l = void 0 !== w.config.maxTime || w.config.maxDate && w.maxDateHasTime && w.latestSelectedDateObj && 0 === M(w.latestSelectedDateObj, w.config.maxDate, !0);
				if (void 0 !== w.config.maxTime && void 0 !== w.config.minTime && w.config.minTime > w.config.maxTime) {
					var c = y(w.config.minTime.getHours(), w.config.minTime.getMinutes(), w.config.minTime.getSeconds()),
						s = y(w.config.maxTime.getHours(), w.config.maxTime.getMinutes(), w.config.maxTime.getSeconds()),
						d = y(t, a, i);
					if (d > s && d < c) {
						var u = function(e) {
							var n = Math.floor(e / 3600),
								t = (e - 3600 * n) / 60;
							return [n, t, e - 3600 * n - 60 * t]
						}(c);
						t = u[0], a = u[1], i = u[2]
					}
				} else {
					if (l) {
						var f = void 0 !== w.config.maxTime ? w.config.maxTime : w.config.maxDate;
						(t = Math.min(t, f.getHours())) === f.getHours() && (a = Math.min(a, f.getMinutes())), a === f.getMinutes() && (i = Math.min(i, f.getSeconds()))
					}
					if (o) {
						var m = void 0 !== w.config.minTime ? w.config.minTime : w.config.minDate;
						(t = Math.max(t, m.getHours())) === m.getHours() && a < m.getMinutes() && (a = m.getMinutes()), a === m.getMinutes() && (i = Math.max(i, m.getSeconds()))
					}
				}
				A(t, a, i)
			}
		}

		function F(e) {
			var n = e || w.latestSelectedDateObj;
			n && n instanceof Date && A(n.getHours(), n.getMinutes(), n.getSeconds())
		}

		function A(e, n, t) {
			void 0 !== w.latestSelectedDateObj && w.latestSelectedDateObj.setHours(e % 24, n, t || 0, 0), w.hourElement && w.minuteElement && !w.isMobile && (w.hourElement.value = o(w.config.time_24hr ? e : (12 + e) % 12 + 12 * r(e % 12 == 0)), w.minuteElement.value = o(n), void 0 !== w.amPM && (w.amPM.textContent = w.l10n.amPM[r(e >= 12)]), void 0 !== w.secondElement && (w.secondElement.value = o(t)))
		}

		function N(e) {
			var n = g(e),
				t = parseInt(n.value) + (e.delta || 0);
			(t / 1e3 > 1 || "Enter" === e.key && !/[^\d]/.test(t.toString())) && ee(t)
		}

		function P(e, n, t, a) {
			return n instanceof Array ? n.forEach((function(n) {
				return P(e, n, t, a)
			})) : e instanceof Array ? e.forEach((function(e) {
				return P(e, n, t, a)
			})) : (e.addEventListener(n, t, a), void w._handlers.push({
				remove: function() {
					return e.removeEventListener(n, t, a)
				}
			}))
		}

		function Y() {
			De("onChange")
		}

		function j(e, n) {
			var t = void 0 !== e ? w.parseDate(e) : w.latestSelectedDateObj || (w.config.minDate && w.config.minDate > w.now ? w.config.minDate : w.config.maxDate && w.config.maxDate < w.now ? w.config.maxDate : w.now),
				a = w.currentYear,
				i = w.currentMonth;
			try {
				void 0 !== t && (w.currentYear = t.getFullYear(), w.currentMonth = t.getMonth())
			} catch (e) {
				e.message = "Invalid date supplied: " + t, w.config.errorHandler(e)
			}
			n && w.currentYear !== a && (De("onYearChange"), q()), !n || w.currentYear === a && w.currentMonth === i || De("onMonthChange"), w.redraw()
		}

		function H(e) {
			var n = g(e);~
			n.className.indexOf("arrow") && L(e, n.classList.contains("arrowUp") ? 1 : -1)
		}

		function L(e, n, t) {
			var a = e && g(e),
				i = t || a && a.parentNode && a.parentNode.firstChild,
				o = we("increment");
			o.delta = n, i && i.dispatchEvent(o)
		}

		function R(e, n, t, a) {
			var i = ne(n, !0),
				o = d("span", e, n.getDate().toString());
			return o.dateObj = n, o.$i = a, o.setAttribute("aria-label", w.formatDate(n, w.config.ariaDateFormat)), -1 === e.indexOf("hidden") && 0 === M(n, w.now) && (w.todayDateElem = o, o.classList.add("today"), o.setAttribute("aria-current", "date")), i ? (o.tabIndex = -1, be(n) && (o.classList.add("selected"), w.selectedDateElem = o, "range" === w.config.mode && (s(o, "startRange", w.selectedDates[0] && 0 === M(n, w.selectedDates[0], !0)), s(o, "endRange", w.selectedDates[1] && 0 === M(n, w.selectedDates[1], !0)), "nextMonthDay" === e && o.classList.add("inRange")))) : o.classList.add("flatpickr-disabled"), "range" === w.config.mode && function(e) {
				return !("range" !== w.config.mode || w.selectedDates.length < 2) && (M(e, w.selectedDates[0]) >= 0 && M(e, w.selectedDates[1]) <= 0)
			}(n) && !be(n) && o.classList.add("inRange"), w.weekNumbers && 1 === w.config.showMonths && "prevMonthDay" !== e && a % 7 == 6 && w.weekNumbers.insertAdjacentHTML("beforeend", "<span class='flatpickr-day'>" + w.config.getWeek(n) + "</span>"), De("onDayCreate", o), o
		}

		function W(e) {
			e.focus(), "range" === w.config.mode && oe(e)
		}

		function B(e) {
			for (var n = e > 0 ? 0 : w.config.showMonths - 1, t = e > 0 ? w.config.showMonths : -1, a = n; a != t; a += e)
				for (var i = w.daysContainer.children[a], o = e > 0 ? 0 : i.children.length - 1, r = e > 0 ? i.children.length : -1, l = o; l != r; l += e) {
					var c = i.children[l];
					if (-1 === c.className.indexOf("hidden") && ne(c.dateObj)) return c
				}
		}

		function J(e, n) {
			var t = k(),
				a = te(t || document.body),
				i = void 0 !== e ? e : a ? t : void 0 !== w.selectedDateElem && te(w.selectedDateElem) ? w.selectedDateElem : void 0 !== w.todayDateElem && te(w.todayDateElem) ? w.todayDateElem : B(n > 0 ? 1 : -1);
			void 0 === i ? w._input.focus() : a ? function(e, n) {
				for (var t = -1 === e.className.indexOf("Month") ? e.dateObj.getMonth() : w.currentMonth, a = n > 0 ? w.config.showMonths : -1, i = n > 0 ? 1 : -1, o = t - w.currentMonth; o != a; o += i)
					for (var r = w.daysContainer.children[o], l = t - w.currentMonth === o ? e.$i + n : n < 0 ? r.children.length - 1 : 0, c = r.children.length, s = l; s >= 0 && s < c && s != (n > 0 ? c : -1); s += i) {
						var d = r.children[s];
						if (-1 === d.className.indexOf("hidden") && ne(d.dateObj) && Math.abs(e.$i - s) >= Math.abs(n)) return W(d)
					}
				w.changeMonth(i), J(B(i), 0)
			}(i, n) : W(i)
		}

		function K(e, n) {
			for (var t = (new Date(e, n, 1).getDay() - w.l10n.firstDayOfWeek + 7) % 7, a = w.utils.getDaysInMonth((n - 1 + 12) % 12, e), i = w.utils.getDaysInMonth(n, e), o = window.document.createDocumentFragment(), r = w.config.showMonths > 1, l = r ? "prevMonthDay hidden" : "prevMonthDay", c = r ? "nextMonthDay hidden" : "nextMonthDay", s = a + 1 - t, u = 0; s <= a; s++, u++) o.appendChild(R("flatpickr-day " + l, new Date(e, n - 1, s), 0, u));
			for (s = 1; s <= i; s++, u++) o.appendChild(R("flatpickr-day", new Date(e, n, s), 0, u));
			for (var f = i + 1; f <= 42 - t && (1 === w.config.showMonths || u % 7 != 0); f++, u++) o.appendChild(R("flatpickr-day " + c, new Date(e, n + 1, f % i), 0, u));
			var m = d("div", "dayContainer");
			return m.appendChild(o), m
		}

		function U() {
			if (void 0 !== w.daysContainer) {
				u(w.daysContainer), w.weekNumbers && u(w.weekNumbers);
				for (var e = document.createDocumentFragment(), n = 0; n < w.config.showMonths; n++) {
					var t = new Date(w.currentYear, w.currentMonth, 1);
					t.setMonth(w.currentMonth + n), e.appendChild(K(t.getFullYear(), t.getMonth()))
				}
				w.daysContainer.appendChild(e), w.days = w.daysContainer.firstChild, "range" === w.config.mode && 1 === w.selectedDates.length && oe()
			}
		}

		function q() {
			if (!(w.config.showMonths > 1 || "dropdown" !== w.config.monthSelectorType)) {
				var e = function(e) {
					return !(void 0 !== w.config.minDate && w.currentYear === w.config.minDate.getFullYear() && e < w.config.minDate.getMonth()) && !(void 0 !== w.config.maxDate && w.currentYear === w.config.maxDate.getFullYear() && e > w.config.maxDate.getMonth())
				};
				w.monthsDropdownContainer.tabIndex = -1, w.monthsDropdownContainer.innerHTML = "";
				for (var n = 0; n < 12; n++)
					if (e(n)) {
						var t = d("option", "flatpickr-monthDropdown-month");
						t.value = new Date(w.currentYear, n).getMonth().toString(), t.textContent = h(n, w.config.shorthandCurrentMonth, w.l10n), t.tabIndex = -1, w.currentMonth === n && (t.selected = !0), w.monthsDropdownContainer.appendChild(t)
					}
			}
		}

		function $() {
			var e, n = d("div", "flatpickr-month"),
				t = window.document.createDocumentFragment();
			w.config.showMonths > 1 || "static" === w.config.monthSelectorType ? e = d("span", "cur-month") : (w.monthsDropdownContainer = d("select", "flatpickr-monthDropdown-months"), w.monthsDropdownContainer.setAttribute("aria-label", w.l10n.monthAriaLabel), P(w.monthsDropdownContainer, "change", (function(e) {
				var n = g(e),
					t = parseInt(n.value, 10);
				w.changeMonth(t - w.currentMonth), De("onMonthChange")
			})), q(), e = w.monthsDropdownContainer);
			var a = m("cur-year", {
				tabindex: "-1"
			}),
				i = a.getElementsByTagName("input")[0];
			i.setAttribute("aria-label", w.l10n.yearAriaLabel), w.config.minDate && i.setAttribute("min", w.config.minDate.getFullYear().toString()), w.config.maxDate && (i.setAttribute("max", w.config.maxDate.getFullYear().toString()), i.disabled = !! w.config.minDate && w.config.minDate.getFullYear() === w.config.maxDate.getFullYear());
			var o = d("div", "flatpickr-current-month");
			return o.appendChild(e), o.appendChild(a), t.appendChild(o), n.appendChild(t), {
				container: n,
				yearElement: i,
				monthElement: e
			}
		}

		function V() {
			u(w.monthNav), w.monthNav.appendChild(w.prevMonthNav), w.config.showMonths && (w.yearElements = [], w.monthElements = []);
			for (var e = w.config.showMonths; e--;) {
				var n = $();
				w.yearElements.push(n.yearElement), w.monthElements.push(n.monthElement), w.monthNav.appendChild(n.container)
			}
			w.monthNav.appendChild(w.nextMonthNav)
		}

		function z() {
			w.weekdayContainer ? u(w.weekdayContainer) : w.weekdayContainer = d("div", "flatpickr-weekdays");
			for (var e = w.config.showMonths; e--;) {
				var n = d("div", "flatpickr-weekdaycontainer");
				w.weekdayContainer.appendChild(n)
			}
			return G(), w.weekdayContainer
		}

		function G() {
			if (w.weekdayContainer) {
				var e = w.l10n.firstDayOfWeek,
					t = n(w.l10n.weekdays.shorthand);
				e > 0 && e < t.length && (t = n(t.splice(e, t.length), t.splice(0, e)));
				for (var a = w.config.showMonths; a--;) w.weekdayContainer.children[a].innerHTML = "\n      <span class='flatpickr-weekday'>\n        " + t.join("</span><span class='flatpickr-weekday'>") + "\n      </span>\n      "
			}
		}

		function Z(e, n) {
			void 0 === n && (n = !0);
			var t = n ? e : e - w.currentMonth;
			t < 0 && !0 === w._hidePrevMonthArrow || t > 0 && !0 === w._hideNextMonthArrow || (w.currentMonth += t, (w.currentMonth < 0 || w.currentMonth > 11) && (w.currentYear += w.currentMonth > 11 ? 1 : -1, w.currentMonth = (w.currentMonth + 12) % 12, De("onYearChange"), q()), U(), De("onMonthChange"), Ce())
		}

		function Q(e) {
			return w.calendarContainer.contains(e)
		}

		function X(e) {
			if (w.isOpen && !w.config.inline) {
				var n = g(e),
					t = Q(n),
					a = !(n === w.input || n === w.altInput || w.element.contains(n) || e.path && e.path.indexOf && (~e.path.indexOf(w.input) || ~e.path.indexOf(w.altInput))) && !t && !Q(e.relatedTarget),
					i = !w.config.ignoredFocusElements.some((function(e) {
						return e.contains(n)
					}));
				a && i && (w.config.allowInput && w.setDate(w._input.value, !1, w.config.altInput ? w.config.altFormat : w.config.dateFormat), void 0 !== w.timeContainer && void 0 !== w.minuteElement && void 0 !== w.hourElement && "" !== w.input.value && void 0 !== w.input.value && _(), w.close(), w.config && "range" === w.config.mode && 1 === w.selectedDates.length && w.clear(!1))
			}
		}

		function ee(e) {
			if (!(!e || w.config.minDate && e < w.config.minDate.getFullYear() || w.config.maxDate && e > w.config.maxDate.getFullYear())) {
				var n = e,
					t = w.currentYear !== n;
				w.currentYear = n || w.currentYear, w.config.maxDate && w.currentYear === w.config.maxDate.getFullYear() ? w.currentMonth = Math.min(w.config.maxDate.getMonth(), w.currentMonth) : w.config.minDate && w.currentYear === w.config.minDate.getFullYear() && (w.currentMonth = Math.max(w.config.minDate.getMonth(), w.currentMonth)), t && (w.redraw(), De("onYearChange"), q())
			}
		}

		function ne(e, n) {
			var t;
			void 0 === n && (n = !0);
			var a = w.parseDate(e, void 0, n);
			if (w.config.minDate && a && M(a, w.config.minDate, void 0 !== n ? n : !w.minDateHasTime) < 0 || w.config.maxDate && a && M(a, w.config.maxDate, void 0 !== n ? n : !w.maxDateHasTime) > 0) return !1;
			if (!w.config.enable && 0 === w.config.disable.length) return !0;
			if (void 0 === a) return !1;
			for (var i = !! w.config.enable, o = null !== (t = w.config.enable) && void 0 !== t ? t : w.config.disable, r = 0, l = void 0; r < o.length; r++) {
				if ("function" == typeof(l = o[r]) && l(a)) return i;
				if (l instanceof Date && void 0 !== a && l.getTime() === a.getTime()) return i;
				if ("string" == typeof l) {
					var c = w.parseDate(l, void 0, !0);
					return c && c.getTime() === a.getTime() ? i : !i
				}
				if ("object" == typeof l && void 0 !== a && l.from && l.to && a.getTime() >= l.from.getTime() && a.getTime() <= l.to.getTime()) return i
			}
			return !i
		}

		function te(e) {
			return void 0 !== w.daysContainer && (-1 === e.className.indexOf("hidden") && -1 === e.className.indexOf("flatpickr-disabled") && w.daysContainer.contains(e))
		}

		function ae(e) {
			var n = e.target === w._input,
				t = w._input.value.trimEnd() !== Me();
			!n || !t || e.relatedTarget && Q(e.relatedTarget) || w.setDate(w._input.value, !0, e.target === w.altInput ? w.config.altFormat : w.config.dateFormat)
		}

		function ie(e) {
			var n = g(e),
				t = w.config.wrap ? p.contains(n) : n === w._input,
				a = w.config.allowInput,
				i = w.isOpen && (!a || !t),
				o = w.config.inline && t && !a;
			if (13 === e.keyCode && t) {
				if (a) return w.setDate(w._input.value, !0, n === w.altInput ? w.config.altFormat : w.config.dateFormat), w.close(), n.blur();
				w.open()
			} else if (Q(n) || i || o) {
				var r = !! w.timeContainer && w.timeContainer.contains(n);
				switch (e.keyCode) {
					case 13:
						r ? (e.preventDefault(), _(), fe()) : me(e);
						break;
					case 27:
						e.preventDefault(), fe();
						break;
					case 8:
					case 46:
						t && !w.config.allowInput && (e.preventDefault(), w.clear());
						break;
					case 37:
					case 39:
						if (r || t) w.hourElement && w.hourElement.focus();
						else {
							e.preventDefault();
							var l = k();
							if (void 0 !== w.daysContainer && (!1 === a || l && te(l))) {
								var c = 39 === e.keyCode ? 1 : -1;
								e.ctrlKey ? (e.stopPropagation(), Z(c), J(B(1), 0)) : J(void 0, c)
							}
						}
						break;
					case 38:
					case 40:
						e.preventDefault();
						var s = 40 === e.keyCode ? 1 : -1;
						w.daysContainer && void 0 !== n.$i || n === w.input || n === w.altInput ? e.ctrlKey ? (e.stopPropagation(), ee(w.currentYear - s), J(B(1), 0)) : r || J(void 0, 7 * s) : n === w.currentYearElement ? ee(w.currentYear - s) : w.config.enableTime && (!r && w.hourElement && w.hourElement.focus(), _(e), w._debouncedChange());
						break;
					case 9:
						if (r) {
							var d = [w.hourElement, w.minuteElement, w.secondElement, w.amPM].concat(w.pluginElements).filter((function(e) {
								return e
							})),
								u = d.indexOf(n);
							if (-1 !== u) {
								var f = d[u + (e.shiftKey ? -1 : 1)];
								e.preventDefault(), (f || w._input).focus()
							}
						} else !w.config.noCalendar && w.daysContainer && w.daysContainer.contains(n) && e.shiftKey && (e.preventDefault(), w._input.focus())
				}
			}
			if (void 0 !== w.amPM && n === w.amPM) switch (e.key) {
				case w.l10n.amPM[0].charAt(0):
				case w.l10n.amPM[0].charAt(0).toLowerCase():
					w.amPM.textContent = w.l10n.amPM[0], O(), ye();
					break;
				case w.l10n.amPM[1].charAt(0):
				case w.l10n.amPM[1].charAt(0).toLowerCase():
					w.amPM.textContent = w.l10n.amPM[1], O(), ye()
			}(t || Q(n)) && De("onKeyDown", e)
		}

		function oe(e, n) {
			if (void 0 === n && (n = "flatpickr-day"), 1 === w.selectedDates.length && (!e || e.classList.contains(n) && !e.classList.contains("flatpickr-disabled"))) {
				for (var t = e ? e.dateObj.getTime() : w.days.firstElementChild.dateObj.getTime(), a = w.parseDate(w.selectedDates[0], void 0, !0).getTime(), i = Math.min(t, w.selectedDates[0].getTime()), o = Math.max(t, w.selectedDates[0].getTime()), r = !1, l = 0, c = 0, s = i; s < o; s += x) ne(new Date(s), !0) || (r = r || s > i && s < o, s < a && (!l || s > l) ? l = s : s > a && (!c || s < c) && (c = s));
				Array.from(w.rContainer.querySelectorAll("*:nth-child(-n+" + w.config.showMonths + ") > ." + n)).forEach((function(n) {
					var i, o, s, d = n.dateObj.getTime(),
						u = l > 0 && d < l || c > 0 && d > c;
					if (u) return n.classList.add("notAllowed"), void["inRange", "startRange", "endRange"].forEach((function(e) {
						n.classList.remove(e)
					}));
					r && !u || (["startRange", "inRange", "endRange", "notAllowed"].forEach((function(e) {
						n.classList.remove(e)
					})), void 0 !== e && (e.classList.add(t <= w.selectedDates[0].getTime() ? "startRange" : "endRange"), a < t && d === a ? n.classList.add("startRange") : a > t && d === a && n.classList.add("endRange"), d >= l && (0 === c || d <= c) && (o = a, s = t, (i = d) > Math.min(o, s) && i < Math.max(o, s)) && n.classList.add("inRange")))
				}))
			}
		}

		function re() {
			!w.isOpen || w.config.static || w.config.inline || de()
		}

		function le(e) {
			return function(n) {
				var t = w.config["_" + e + "Date"] = w.parseDate(n, w.config.dateFormat),
					a = w.config["_" + ("min" === e ? "max" : "min") + "Date"];
				void 0 !== t && (w["min" === e ? "minDateHasTime" : "maxDateHasTime"] = t.getHours() > 0 || t.getMinutes() > 0 || t.getSeconds() > 0), w.selectedDates && (w.selectedDates = w.selectedDates.filter((function(e) {
					return ne(e)
				})), w.selectedDates.length || "min" !== e || F(t), ye()), w.daysContainer && (ue(), void 0 !== t ? w.currentYearElement[e] = t.getFullYear().toString() : w.currentYearElement.removeAttribute(e), w.currentYearElement.disabled = !! a && void 0 !== t && a.getFullYear() === t.getFullYear())
			}
		}

		function ce() {
			return w.config.wrap ? p.querySelector("[data-input]") : p
		}

		function se() {
			"object" != typeof w.config.locale && void 0 === I.l10ns[w.config.locale] && w.config.errorHandler(new Error("flatpickr: invalid locale " + w.config.locale)), w.l10n = e(e({}, I.l10ns.
				default), "object" == typeof w.config.locale ? w.config.locale : "default" !== w.config.locale ? I.l10ns[w.config.locale] : void 0), D.D = "(" + w.l10n.weekdays.shorthand.join("|") + ")", D.l = "(" + w.l10n.weekdays.longhand.join("|") + ")", D.M = "(" + w.l10n.months.shorthand.join("|") + ")", D.F = "(" + w.l10n.months.longhand.join("|") + ")", D.K = "(" + w.l10n.amPM[0] + "|" + w.l10n.amPM[1] + "|" + w.l10n.amPM[0].toLowerCase() + "|" + w.l10n.amPM[1].toLowerCase() + ")", void 0 === e(e({}, v), JSON.parse(JSON.stringify(p.dataset || {}))).time_24hr && void 0 === I.defaultConfig.time_24hr && (w.config.time_24hr = w.l10n.time_24hr), w.formatDate = b(w), w.parseDate = C({
				config: w.config,
				l10n: w.l10n
			})
		}

		function de(e) {
			if ("function" != typeof w.config.position) {
				if (void 0 !== w.calendarContainer) {
					De("onPreCalendarPosition");
					var n = e || w._positionElement,
						t = Array.prototype.reduce.call(w.calendarContainer.children, (function(e, n) {
							return e + n.offsetHeight
						}), 0),
						a = w.calendarContainer.offsetWidth,
						i = w.config.position.split(" "),
						o = i[0],
						r = i.length > 1 ? i[1] : null,
						l = n.getBoundingClientRect(),
						c = window.innerHeight - l.bottom,
						d = "above" === o || "below" !== o && c < t && l.top > t,
						u = window.pageYOffset + l.top + (d ? -t - 2 : n.offsetHeight + 2);
					if (s(w.calendarContainer, "arrowTop", !d), s(w.calendarContainer, "arrowBottom", d), !w.config.inline) {
						var f = window.pageXOffset + l.left,
							m = !1,
							g = !1;
						"center" === r ? (f -= (a - l.width) / 2, m = !0) : "right" === r && (f -= a - l.width, g = !0), s(w.calendarContainer, "arrowLeft", !m && !g), s(w.calendarContainer, "arrowCenter", m), s(w.calendarContainer, "arrowRight", g);
						var p = window.document.body.offsetWidth - (window.pageXOffset + l.right),
							h = f + a > window.document.body.offsetWidth,
							v = p + a > window.document.body.offsetWidth;
						if (s(w.calendarContainer, "rightMost", h), !w.config.static)
							if (w.calendarContainer.style.top = u + "px", h)
								if (v) {
									var D = function() {
										for (var e = null, n = 0; n < document.styleSheets.length; n++) {
											var t = document.styleSheets[n];
											if (t.cssRules) {
												try {
													t.cssRules
												} catch (e) {
													continue
												}
												e = t;
												break
											}
										}
										return null != e ? e : (a = document.createElement("style"), document.head.appendChild(a), a.sheet);
										var a
									}();
									if (void 0 === D) return;
									var b = window.document.body.offsetWidth,
										C = Math.max(0, b / 2 - a / 2),
										M = D.cssRules.length,
										y = "{left:" + l.left + "px;right:auto;}";
									s(w.calendarContainer, "rightMost", !1), s(w.calendarContainer, "centerMost", !0), D.insertRule(".flatpickr-calendar.centerMost:before,.flatpickr-calendar.centerMost:after" + y, M), w.calendarContainer.style.left = C + "px", w.calendarContainer.style.right = "auto"
								} else w.calendarContainer.style.left = "auto", w.calendarContainer.style.right = p + "px";
								else w.calendarContainer.style.left = f + "px", w.calendarContainer.style.right = "auto"
					}
				}
			} else w.config.position(w, e)
		}

		function ue() {
			w.config.noCalendar || w.isMobile || (q(), Ce(), U())
		}

		function fe() {
			w._input.focus(), -1 !== window.navigator.userAgent.indexOf("MSIE") || void 0 !== navigator.msMaxTouchPoints ? setTimeout(w.close, 0) : w.close()
		}

		function me(e) {
			e.preventDefault(), e.stopPropagation();
			var n = f(g(e), (function(e) {
				return e.classList && e.classList.contains("flatpickr-day") && !e.classList.contains("flatpickr-disabled") && !e.classList.contains("notAllowed")
			}));
			if (void 0 !== n) {
				var t = n,
					a = w.latestSelectedDateObj = new Date(t.dateObj.getTime()),
					i = (a.getMonth() < w.currentMonth || a.getMonth() > w.currentMonth + w.config.showMonths - 1) && "range" !== w.config.mode;
				if (w.selectedDateElem = t, "single" === w.config.mode) w.selectedDates = [a];
				else if ("multiple" === w.config.mode) {
					var o = be(a);
					o ? w.selectedDates.splice(parseInt(o), 1) : w.selectedDates.push(a)
				} else "range" === w.config.mode && (2 === w.selectedDates.length && w.clear(!1, !1), w.latestSelectedDateObj = a, w.selectedDates.push(a), 0 !== M(a, w.selectedDates[0], !0) && w.selectedDates.sort((function(e, n) {
					return e.getTime() - n.getTime()
				}))); if (O(), i) {
					var r = w.currentYear !== a.getFullYear();
					w.currentYear = a.getFullYear(), w.currentMonth = a.getMonth(), r && (De("onYearChange"), q()), De("onMonthChange")
				}
				if (Ce(), U(), ye(), i || "range" === w.config.mode || 1 !== w.config.showMonths ? void 0 !== w.selectedDateElem && void 0 === w.hourElement && w.selectedDateElem && w.selectedDateElem.focus() : W(t), void 0 !== w.hourElement && void 0 !== w.hourElement && w.hourElement.focus(), w.config.closeOnSelect) {
					var l = "single" === w.config.mode && !w.config.enableTime,
						c = "range" === w.config.mode && 2 === w.selectedDates.length && !w.config.enableTime;
					(l || c) && fe()
				}
				Y()
			}
		}
		w.parseDate = C({
			config: w.config,
			l10n: w.l10n
		}), w._handlers = [], w.pluginElements = [], w.loadedPlugins = [], w._bind = P, w._setHoursFromDate = F, w._positionCalendar = de, w.changeMonth = Z, w.changeYear = ee, w.clear = function(e, n) {
			void 0 === e && (e = !0);
			void 0 === n && (n = !0);
			w.input.value = "", void 0 !== w.altInput && (w.altInput.value = "");
			void 0 !== w.mobileInput && (w.mobileInput.value = "");
			w.selectedDates = [], w.latestSelectedDateObj = void 0, !0 === n && (w.currentYear = w._initialDate.getFullYear(), w.currentMonth = w._initialDate.getMonth());
			if (!0 === w.config.enableTime) {
				var t = E(w.config),
					a = t.hours,
					i = t.minutes,
					o = t.seconds;
				A(a, i, o)
			}
			w.redraw(), e && De("onChange")
		}, w.close = function() {
			w.isOpen = !1, w.isMobile || (void 0 !== w.calendarContainer && w.calendarContainer.classList.remove("open"), void 0 !== w._input && w._input.classList.remove("active"));
			De("onClose")
		}, w.onMouseOver = oe, w._createElement = d, w.createDay = R, w.destroy = function() {
			void 0 !== w.config && De("onDestroy");
			for (var e = w._handlers.length; e--;) w._handlers[e].remove();
			if (w._handlers = [], w.mobileInput) w.mobileInput.parentNode && w.mobileInput.parentNode.removeChild(w.mobileInput), w.mobileInput = void 0;
			else if (w.calendarContainer && w.calendarContainer.parentNode)
				if (w.config.static && w.calendarContainer.parentNode) {
					var n = w.calendarContainer.parentNode;
					if (n.lastChild && n.removeChild(n.lastChild), n.parentNode) {
						for (; n.firstChild;) n.parentNode.insertBefore(n.firstChild, n);
						n.parentNode.removeChild(n)
					}
				} else w.calendarContainer.parentNode.removeChild(w.calendarContainer);
			w.altInput && (w.input.type = "text", w.altInput.parentNode && w.altInput.parentNode.removeChild(w.altInput), delete w.altInput);
			w.input && (w.input.type = w.input._type, w.input.classList.remove("flatpickr-input"), w.input.removeAttribute("readonly"));
			["_showTimeInput", "latestSelectedDateObj", "_hideNextMonthArrow", "_hidePrevMonthArrow", "__hideNextMonthArrow", "__hidePrevMonthArrow", "isMobile", "isOpen", "selectedDateElem", "minDateHasTime", "maxDateHasTime", "days", "daysContainer", "_input", "_positionElement", "innerContainer", "rContainer", "monthNav", "todayDateElem", "calendarContainer", "weekdayContainer", "prevMonthNav", "nextMonthNav", "monthsDropdownContainer", "currentMonthElement", "currentYearElement", "navigationCurrentMonth", "selectedDateElem", "config"].forEach((function(e) {
				try {
					delete w[e]
				} catch (e) {}
			}))
		}, w.isEnabled = ne, w.jumpToDate = j, w.updateValue = ye, w.open = function(e, n) {
			void 0 === n && (n = w._positionElement);
			if (!0 === w.isMobile) {
				if (e) {
					e.preventDefault();
					var t = g(e);
					t && t.blur()
				}
				return void 0 !== w.mobileInput && (w.mobileInput.focus(), w.mobileInput.click()), void De("onOpen")
			}
			if (w._input.disabled || w.config.inline) return;
			var a = w.isOpen;
			w.isOpen = !0, a || (w.calendarContainer.classList.add("open"), w._input.classList.add("active"), De("onOpen"), de(n));
			!0 === w.config.enableTime && !0 === w.config.noCalendar && (!1 !== w.config.allowInput || void 0 !== e && w.timeContainer.contains(e.relatedTarget) || setTimeout((function() {
				return w.hourElement.select()
			}), 50))
		}, w.redraw = ue, w.set = function(e, n) {
			if (null !== e && "object" == typeof e)
				for (var a in Object.assign(w.config, e), e) void 0 !== ge[a] && ge[a].forEach((function(e) {
					return e()
				}));
			else w.config[e] = n, void 0 !== ge[e] ? ge[e].forEach((function(e) {
				return e()
			})) : t.indexOf(e) > -1 && (w.config[e] = c(n));
			w.redraw(), ye(!0)
		}, w.setDate = function(e, n, t) {
			void 0 === n && (n = !1);
			void 0 === t && (t = w.config.dateFormat);
			if (0 !== e && !e || e instanceof Array && 0 === e.length) return w.clear(n);
			pe(e, t), w.latestSelectedDateObj = w.selectedDates[w.selectedDates.length - 1], w.redraw(), j(void 0, n), F(), 0 === w.selectedDates.length && w.clear(!1);
			ye(n), n && De("onChange")
		}, w.toggle = function(e) {
			if (!0 === w.isOpen) return w.close();
			w.open(e)
		};
		var ge = {
			locale: [se, G],
			showMonths: [V, S, z],
			minDate: [j],
			maxDate: [j],
			positionElement: [ve],
			clickOpens: [
				function() {
					!0 === w.config.clickOpens ? (P(w._input, "focus", w.open), P(w._input, "click", w.open)) : (w._input.removeEventListener("focus", w.open), w._input.removeEventListener("click", w.open))
				}
			]
		};

		function pe(e, n) {
			var t = [];
			if (e instanceof Array) t = e.map((function(e) {
				return w.parseDate(e, n)
			}));
			else if (e instanceof Date || "number" == typeof e) t = [w.parseDate(e, n)];
			else if ("string" == typeof e) switch (w.config.mode) {
				case "single":
				case "time":
					t = [w.parseDate(e, n)];
					break;
				case "multiple":
					t = e.split(w.config.conjunction).map((function(e) {
						return w.parseDate(e, n)
					}));
					break;
				case "range":
					t = e.split(w.l10n.rangeSeparator).map((function(e) {
						return w.parseDate(e, n)
					}))
			} else w.config.errorHandler(new Error("Invalid date supplied: " + JSON.stringify(e)));
			w.selectedDates = w.config.allowInvalidPreload ? t : t.filter((function(e) {
				return e instanceof Date && ne(e, !1)
			})), "range" === w.config.mode && w.selectedDates.sort((function(e, n) {
				return e.getTime() - n.getTime()
			}))
		}

		function he(e) {
			return e.slice().map((function(e) {
				return "string" == typeof e || "number" == typeof e || e instanceof Date ? w.parseDate(e, void 0, !0) : e && "object" == typeof e && e.from && e.to ? {
					from: w.parseDate(e.from, void 0),
					to: w.parseDate(e.to, void 0)
				} : e
			})).filter((function(e) {
				return e
			}))
		}

		function ve() {
			w._positionElement = w.config.positionElement || w._input
		}

		function De(e, n) {
			if (void 0 !== w.config) {
				var t = w.config[e];
				if (void 0 !== t && t.length > 0)
					for (var a = 0; t[a] && a < t.length; a++) t[a](w.selectedDates, w.input.value, w, n);
				"onChange" === e && (w.input.dispatchEvent(we("change")), w.input.dispatchEvent(we("input")))
			}
		}

		function we(e) {
			var n = document.createEvent("Event");
			return n.initEvent(e, !0, !0), n
		}

		function be(e) {
			for (var n = 0; n < w.selectedDates.length; n++) {
				var t = w.selectedDates[n];
				if (t instanceof Date && 0 === M(t, e)) return "" + n
			}
			return !1
		}

		function Ce() {
			w.config.noCalendar || w.isMobile || !w.monthNav || (w.yearElements.forEach((function(e, n) {
				var t = new Date(w.currentYear, w.currentMonth, 1);
				t.setMonth(w.currentMonth + n), w.config.showMonths > 1 || "static" === w.config.monthSelectorType ? w.monthElements[n].textContent = h(t.getMonth(), w.config.shorthandCurrentMonth, w.l10n) + " " : w.monthsDropdownContainer.value = t.getMonth().toString(), e.value = t.getFullYear().toString()
			})), w._hidePrevMonthArrow = void 0 !== w.config.minDate && (w.currentYear === w.config.minDate.getFullYear() ? w.currentMonth <= w.config.minDate.getMonth() : w.currentYear < w.config.minDate.getFullYear()), w._hideNextMonthArrow = void 0 !== w.config.maxDate && (w.currentYear === w.config.maxDate.getFullYear() ? w.currentMonth + 1 > w.config.maxDate.getMonth() : w.currentYear > w.config.maxDate.getFullYear()))
		}

		function Me(e) {
			var n = e || (w.config.altInput ? w.config.altFormat : w.config.dateFormat);
			return w.selectedDates.map((function(e) {
				return w.formatDate(e, n)
			})).filter((function(e, n, t) {
				return "range" !== w.config.mode || w.config.enableTime || t.indexOf(e) === n
			})).join("range" !== w.config.mode ? w.config.conjunction : w.l10n.rangeSeparator)
		}

		function ye(e) {
			void 0 === e && (e = !0), void 0 !== w.mobileInput && w.mobileFormatStr && (w.mobileInput.value = void 0 !== w.latestSelectedDateObj ? w.formatDate(w.latestSelectedDateObj, w.mobileFormatStr) : ""), w.input.value = Me(w.config.dateFormat), void 0 !== w.altInput && (w.altInput.value = Me(w.config.altFormat)), !1 !== e && De("onValueUpdate")
		}

		function xe(e) {
			var n = g(e),
				t = w.prevMonthNav.contains(n),
				a = w.nextMonthNav.contains(n);
			t || a ? Z(t ? -1 : 1) : w.yearElements.indexOf(n) >= 0 ? n.select() : n.classList.contains("arrowUp") ? w.changeYear(w.currentYear + 1) : n.classList.contains("arrowDown") && w.changeYear(w.currentYear - 1)
		}
		return function() {
			w.element = w.input = p, w.isOpen = !1,
			function() {
				var n = ["wrap", "weekNumbers", "allowInput", "allowInvalidPreload", "clickOpens", "time_24hr", "enableTime", "noCalendar", "altInput", "shorthandCurrentMonth", "inline", "static", "enableSeconds", "disableMobile"],
					i = e(e({}, JSON.parse(JSON.stringify(p.dataset || {}))), v),
					o = {};
				w.config.parseDate = i.parseDate, w.config.formatDate = i.formatDate, Object.defineProperty(w.config, "enable", {
					get: function() {
						return w.config._enable
					},
					set: function(e) {
						w.config._enable = he(e)
					}
				}), Object.defineProperty(w.config, "disable", {
					get: function() {
						return w.config._disable
					},
					set: function(e) {
						w.config._disable = he(e)
					}
				});
				var r = "time" === i.mode;
				if (!i.dateFormat && (i.enableTime || r)) {
					var l = I.defaultConfig.dateFormat || a.dateFormat;
					o.dateFormat = i.noCalendar || r ? "H:i" + (i.enableSeconds ? ":S" : "") : l + " H:i" + (i.enableSeconds ? ":S" : "")
				}
				if (i.altInput && (i.enableTime || r) && !i.altFormat) {
					var s = I.defaultConfig.altFormat || a.altFormat;
					o.altFormat = i.noCalendar || r ? "h:i" + (i.enableSeconds ? ":S K" : " K") : s + " h:i" + (i.enableSeconds ? ":S" : "") + " K"
				}
				Object.defineProperty(w.config, "minDate", {
					get: function() {
						return w.config._minDate
					},
					set: le("min")
				}), Object.defineProperty(w.config, "maxDate", {
					get: function() {
						return w.config._maxDate
					},
					set: le("max")
				});
				var d = function(e) {
					return function(n) {
						w.config["min" === e ? "_minTime" : "_maxTime"] = w.parseDate(n, "H:i:S")
					}
				};
				Object.defineProperty(w.config, "minTime", {
					get: function() {
						return w.config._minTime
					},
					set: d("min")
				}), Object.defineProperty(w.config, "maxTime", {
					get: function() {
						return w.config._maxTime
					},
					set: d("max")
				}), "time" === i.mode && (w.config.noCalendar = !0, w.config.enableTime = !0);
				Object.assign(w.config, o, i);
				for (var u = 0; u < n.length; u++) w.config[n[u]] = !0 === w.config[n[u]] || "true" === w.config[n[u]];
				t.filter((function(e) {
					return void 0 !== w.config[e]
				})).forEach((function(e) {
					w.config[e] = c(w.config[e] || []).map(T)
				})), w.isMobile = !w.config.disableMobile && !w.config.inline && "single" === w.config.mode && !w.config.disable.length && !w.config.enable && !w.config.weekNumbers && /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
				for (u = 0; u < w.config.plugins.length; u++) {
					var f = w.config.plugins[u](w) || {};
					for (var m in f) t.indexOf(m) > -1 ? w.config[m] = c(f[m]).map(T).concat(w.config[m]) : void 0 === i[m] && (w.config[m] = f[m])
				}
				i.altInputClass || (w.config.altInputClass = ce().className + " " + w.config.altInputClass);
				De("onParseConfig")
			}(), se(),
			function() {
				if (w.input = ce(), !w.input) return void w.config.errorHandler(new Error("Invalid input element specified"));
				w.input._type = w.input.type, w.input.type = "text", w.input.classList.add("flatpickr-input"), w._input = w.input, w.config.altInput && (w.altInput = d(w.input.nodeName, w.config.altInputClass), w._input = w.altInput, w.altInput.placeholder = w.input.placeholder, w.altInput.disabled = w.input.disabled, w.altInput.required = w.input.required, w.altInput.tabIndex = w.input.tabIndex, w.altInput.type = "text", w.input.setAttribute("type", "hidden"), !w.config.static && w.input.parentNode && w.input.parentNode.insertBefore(w.altInput, w.input.nextSibling));
				w.config.allowInput || w._input.setAttribute("readonly", "readonly");
				ve()
			}(),
			function() {
				w.selectedDates = [], w.now = w.parseDate(w.config.now) || new Date;
				var e = w.config.defaultDate || ("INPUT" !== w.input.nodeName && "TEXTAREA" !== w.input.nodeName || !w.input.placeholder || w.input.value !== w.input.placeholder ? w.input.value : null);
				e && pe(e, w.config.dateFormat);
				w._initialDate = w.selectedDates.length > 0 ? w.selectedDates[0] : w.config.minDate && w.config.minDate.getTime() > w.now.getTime() ? w.config.minDate : w.config.maxDate && w.config.maxDate.getTime() < w.now.getTime() ? w.config.maxDate : w.now, w.currentYear = w._initialDate.getFullYear(), w.currentMonth = w._initialDate.getMonth(), w.selectedDates.length > 0 && (w.latestSelectedDateObj = w.selectedDates[0]);
				void 0 !== w.config.minTime && (w.config.minTime = w.parseDate(w.config.minTime, "H:i"));
				void 0 !== w.config.maxTime && (w.config.maxTime = w.parseDate(w.config.maxTime, "H:i"));
				w.minDateHasTime = !! w.config.minDate && (w.config.minDate.getHours() > 0 || w.config.minDate.getMinutes() > 0 || w.config.minDate.getSeconds() > 0), w.maxDateHasTime = !! w.config.maxDate && (w.config.maxDate.getHours() > 0 || w.config.maxDate.getMinutes() > 0 || w.config.maxDate.getSeconds() > 0)
			}(), w.utils = {
				getDaysInMonth: function(e, n) {
					return void 0 === e && (e = w.currentMonth), void 0 === n && (n = w.currentYear), 1 === e && (n % 4 == 0 && n % 100 != 0 || n % 400 == 0) ? 29 : w.l10n.daysInMonth[e]
				}
			}, w.isMobile || function() {
				var e = window.document.createDocumentFragment();
				if (w.calendarContainer = d("div", "flatpickr-calendar"), w.calendarContainer.tabIndex = -1, !w.config.noCalendar) {
					if (e.appendChild((w.monthNav = d("div", "flatpickr-months"), w.yearElements = [], w.monthElements = [], w.prevMonthNav = d("span", "flatpickr-prev-month"), w.prevMonthNav.innerHTML = w.config.prevArrow, w.nextMonthNav = d("span", "flatpickr-next-month"), w.nextMonthNav.innerHTML = w.config.nextArrow, V(), Object.defineProperty(w, "_hidePrevMonthArrow", {
						get: function() {
							return w.__hidePrevMonthArrow
						},
						set: function(e) {
							w.__hidePrevMonthArrow !== e && (s(w.prevMonthNav, "flatpickr-disabled", e), w.__hidePrevMonthArrow = e)
						}
					}), Object.defineProperty(w, "_hideNextMonthArrow", {
						get: function() {
							return w.__hideNextMonthArrow
						},
						set: function(e) {
							w.__hideNextMonthArrow !== e && (s(w.nextMonthNav, "flatpickr-disabled", e), w.__hideNextMonthArrow = e)
						}
					}), w.currentYearElement = w.yearElements[0], Ce(), w.monthNav)), w.innerContainer = d("div", "flatpickr-innerContainer"), w.config.weekNumbers) {
						var n = function() {
							w.calendarContainer.classList.add("hasWeeks");
							var e = d("div", "flatpickr-weekwrapper");
							e.appendChild(d("span", "flatpickr-weekday", w.l10n.weekAbbreviation));
							var n = d("div", "flatpickr-weeks");
							return e.appendChild(n), {
								weekWrapper: e,
								weekNumbers: n
							}
						}(),
							t = n.weekWrapper,
							a = n.weekNumbers;
						w.innerContainer.appendChild(t), w.weekNumbers = a, w.weekWrapper = t
					}
					w.rContainer = d("div", "flatpickr-rContainer"), w.rContainer.appendChild(z()), w.daysContainer || (w.daysContainer = d("div", "flatpickr-days"), w.daysContainer.tabIndex = -1), U(), w.rContainer.appendChild(w.daysContainer), w.innerContainer.appendChild(w.rContainer), e.appendChild(w.innerContainer)
				}
				w.config.enableTime && e.appendChild(function() {
					w.calendarContainer.classList.add("hasTime"), w.config.noCalendar && w.calendarContainer.classList.add("noCalendar");
					var e = E(w.config);
					w.timeContainer = d("div", "flatpickr-time"), w.timeContainer.tabIndex = -1;
					var n = d("span", "flatpickr-time-separator", ":"),
						t = m("flatpickr-hour", {
							"aria-label": w.l10n.hourAriaLabel
						});
					w.hourElement = t.getElementsByTagName("input")[0];
					var a = m("flatpickr-minute", {
						"aria-label": w.l10n.minuteAriaLabel
					});
					w.minuteElement = a.getElementsByTagName("input")[0], w.hourElement.tabIndex = w.minuteElement.tabIndex = -1, w.hourElement.value = o(w.latestSelectedDateObj ? w.latestSelectedDateObj.getHours() : w.config.time_24hr ? e.hours : function(e) {
						switch (e % 24) {
							case 0:
							case 12:
								return 12;
							default:
								return e % 12
						}
					}(e.hours)), w.minuteElement.value = o(w.latestSelectedDateObj ? w.latestSelectedDateObj.getMinutes() : e.minutes), w.hourElement.setAttribute("step", w.config.hourIncrement.toString()), w.minuteElement.setAttribute("step", w.config.minuteIncrement.toString()), w.hourElement.setAttribute("min", w.config.time_24hr ? "0" : "1"), w.hourElement.setAttribute("max", w.config.time_24hr ? "23" : "12"), w.hourElement.setAttribute("maxlength", "2"), w.minuteElement.setAttribute("min", "0"), w.minuteElement.setAttribute("max", "59"), w.minuteElement.setAttribute("maxlength", "2"), w.timeContainer.appendChild(t), w.timeContainer.appendChild(n), w.timeContainer.appendChild(a), w.config.time_24hr && w.timeContainer.classList.add("time24hr");
					if (w.config.enableSeconds) {
						w.timeContainer.classList.add("hasSeconds");
						var i = m("flatpickr-second");
						w.secondElement = i.getElementsByTagName("input")[0], w.secondElement.value = o(w.latestSelectedDateObj ? w.latestSelectedDateObj.getSeconds() : e.seconds), w.secondElement.setAttribute("step", w.minuteElement.getAttribute("step")), w.secondElement.setAttribute("min", "0"), w.secondElement.setAttribute("max", "59"), w.secondElement.setAttribute("maxlength", "2"), w.timeContainer.appendChild(d("span", "flatpickr-time-separator", ":")), w.timeContainer.appendChild(i)
					}
					w.config.time_24hr || (w.amPM = d("span", "flatpickr-am-pm", w.l10n.amPM[r((w.latestSelectedDateObj ? w.hourElement.value : w.config.defaultHour) > 11)]), w.amPM.title = w.l10n.toggleTitle, w.amPM.tabIndex = -1, w.timeContainer.appendChild(w.amPM));
					return w.timeContainer
				}());
				s(w.calendarContainer, "rangeMode", "range" === w.config.mode), s(w.calendarContainer, "animate", !0 === w.config.animate), s(w.calendarContainer, "multiMonth", w.config.showMonths > 1), w.calendarContainer.appendChild(e);
				var i = void 0 !== w.config.appendTo && void 0 !== w.config.appendTo.nodeType;
				if ((w.config.inline || w.config.static) && (w.calendarContainer.classList.add(w.config.inline ? "inline" : "static"), w.config.inline && (!i && w.element.parentNode ? w.element.parentNode.insertBefore(w.calendarContainer, w._input.nextSibling) : void 0 !== w.config.appendTo && w.config.appendTo.appendChild(w.calendarContainer)), w.config.static)) {
					var l = d("div", "flatpickr-wrapper");
					w.element.parentNode && w.element.parentNode.insertBefore(l, w.element), l.appendChild(w.element), w.altInput && l.appendChild(w.altInput), l.appendChild(w.calendarContainer)
				}
				w.config.static || w.config.inline || (void 0 !== w.config.appendTo ? w.config.appendTo : window.document.body).appendChild(w.calendarContainer)
			}(),
			function() {
				w.config.wrap && ["open", "close", "toggle", "clear"].forEach((function(e) {
					Array.prototype.forEach.call(w.element.querySelectorAll("[data-" + e + "]"), (function(n) {
						return P(n, "click", w[e])
					}))
				}));
				if (w.isMobile) return void
				function() {
					var e = w.config.enableTime ? w.config.noCalendar ? "time" : "datetime-local" : "date";
					w.mobileInput = d("input", w.input.className + " flatpickr-mobile"), w.mobileInput.tabIndex = 1, w.mobileInput.type = e, w.mobileInput.disabled = w.input.disabled, w.mobileInput.required = w.input.required, w.mobileInput.placeholder = w.input.placeholder, w.mobileFormatStr = "datetime-local" === e ? "Y-m-d\\TH:i:S" : "date" === e ? "Y-m-d" : "H:i:S", w.selectedDates.length > 0 && (w.mobileInput.defaultValue = w.mobileInput.value = w.formatDate(w.selectedDates[0], w.mobileFormatStr));
					w.config.minDate && (w.mobileInput.min = w.formatDate(w.config.minDate, "Y-m-d"));
					w.config.maxDate && (w.mobileInput.max = w.formatDate(w.config.maxDate, "Y-m-d"));
					w.input.getAttribute("step") && (w.mobileInput.step = String(w.input.getAttribute("step")));
					w.input.type = "hidden", void 0 !== w.altInput && (w.altInput.type = "hidden");
					try {
						w.input.parentNode && w.input.parentNode.insertBefore(w.mobileInput, w.input.nextSibling)
					} catch (e) {}
					P(w.mobileInput, "change", (function(e) {
						w.setDate(g(e).value, !1, w.mobileFormatStr), De("onChange"), De("onClose")
					}))
				}();
				var e = l(re, 50);
				w._debouncedChange = l(Y, 300), w.daysContainer && !/iPhone|iPad|iPod/i.test(navigator.userAgent) && P(w.daysContainer, "mouseover", (function(e) {
					"range" === w.config.mode && oe(g(e))
				}));
				P(w._input, "keydown", ie), void 0 !== w.calendarContainer && P(w.calendarContainer, "keydown", ie);
				w.config.inline || w.config.static || P(window, "resize", e);
				void 0 !== window.ontouchstart ? P(window.document, "touchstart", X) : P(window.document, "mousedown", X);
				P(window.document, "focus", X, {
					capture: !0
				}), !0 === w.config.clickOpens && (P(w._input, "focus", w.open), P(w._input, "click", w.open));
				void 0 !== w.daysContainer && (P(w.monthNav, "click", xe), P(w.monthNav, ["keyup", "increment"], N), P(w.daysContainer, "click", me));
				if (void 0 !== w.timeContainer && void 0 !== w.minuteElement && void 0 !== w.hourElement) {
					var n = function(e) {
						return g(e).select()
					};
					P(w.timeContainer, ["increment"], _), P(w.timeContainer, "blur", _, {
						capture: !0
					}), P(w.timeContainer, "click", H), P([w.hourElement, w.minuteElement], ["focus", "click"], n), void 0 !== w.secondElement && P(w.secondElement, "focus", (function() {
						return w.secondElement && w.secondElement.select()
					})), void 0 !== w.amPM && P(w.amPM, "click", (function(e) {
						_(e)
					}))
				}
				w.config.allowInput && P(w._input, "blur", ae)
			}(), (w.selectedDates.length || w.config.noCalendar) && (w.config.enableTime && F(w.config.noCalendar ? w.latestSelectedDateObj : void 0), ye(!1)), S();
			var n = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
			!w.isMobile && n && de(), De("onReady")
		}(), w
	}

	function T(e, n) {
		for (var t = Array.prototype.slice.call(e).filter((function(e) {
			return e instanceof HTMLElement
		})), a = [], i = 0; i < t.length; i++) {
			var o = t[i];
			try {
				if (null !== o.getAttribute("data-fp-omit")) continue;
				void 0 !== o._flatpickr && (o._flatpickr.destroy(), o._flatpickr = void 0), o._flatpickr = k(o, n || {}), a.push(o._flatpickr)
			} catch (e) {
				console.error(e)
			}
		}
		return 1 === a.length ? a[0] : a
	}
	"undefined" != typeof HTMLElement && "undefined" != typeof HTMLCollection && "undefined" != typeof NodeList && (HTMLCollection.prototype.flatpickr = NodeList.prototype.flatpickr = function(e) {
		return T(this, e)
	}, HTMLElement.prototype.flatpickr = function(e) {
		return T([this], e)
	});
	var I = function(e, n) {
		return "string" == typeof e ? T(window.document.querySelectorAll(e), n) : e instanceof Node ? T([e], n) : T(e, n)
	};
	return I.defaultConfig = {}, I.l10ns = {
		en: e({}, i),
		default: e({}, i)
	}, I.localize = function(n) {
		I.l10ns.
		default = e(e({}, I.l10ns.
			default), n)
	}, I.setDefaults = function(n) {
		I.defaultConfig = e(e({}, I.defaultConfig), n)
	}, I.parseDate = C({}), I.formatDate = b({}), I.compareDates = M, "undefined" != typeof jQuery && void 0 !== jQuery.fn && (jQuery.fn.flatpickr = function(e) {
		return T(this, e)
	}), Date.prototype.fp_incr = function(e) {
		return new Date(this.getFullYear(), this.getMonth(), this.getDate() + ("string" == typeof e ? parseInt(e, 10) : e))
	}, "undefined" != typeof window && (window.flatpickr = I), I
}));